CLI なワンタイムパスワードマネージャの cloak を試す

Rust製のコマンドラインで動作するワンタイムパスワードマネージャです．TOTP/HOTP に対応しています．

evansmurithi/cloak: A Command Line OTP Authenticator application.

Table of Contents

導入

試してみる

環境

導入

Rust package managerのcargoを導入

$ sudo apt install cargo

cargoでcloakを導入

$ cargo install cloak

~/.cargo/ 以下に導入される

試してみる

help

$ ~/.cargo/bin/cloak --help
cloak 0.1.0
Evans Murithi <murithievans80@gmail.com>
A Command Line OTP Authenticator application.

USAGE:
cloak [SUBCOMMAND]

FLAGS:
-h, --help Prints help information
-V, --version Prints version information

SUBCOMMANDS:
add Add a new account
delete Delete an account
help Prints this message or the help of the given subcommand(s)
list List OTP for all accounts
recovery_codes View recovery codes for an account
view View the OTP for an account

add サブコマンドで登録する

$ ~/.cargo/bin/cloak add --help
cloak-add
Add a new account

USAGE:
cloak add [FLAGS] [OPTIONS] <account> <key>

FLAGS:
-h, --help Prints help information
--hotp Counter based account
--totp Time based account (default)
-V, --version Prints version information

OPTIONS:
-a, --algorithm <ALGORITHM> Algorithm to use to generate the OTP code [possible values: SHA1, SHA256, SHA384,
SHA512, SHA512_256]

ARGS:
<account> Name of the account
<key> Secret key of the OTP
$ ~/.cargo/bin/cloak add matoken@home.nextcloud M0KMYFVOZY7AGX47
Account successfully created

登録情報確認

$ ~/.cargo/bin/cloak list
Account: matoken@home.nextcloud
TOTP: 538273

アカウントを指定してTOTPトークン表示

$ ~/.cargo/bin/cloak view matoken@home.nextcloud
370696

設定ファイルには生で情報が格納されるので取扱注意

$ cat ~/.cloak/accounts
["matoken@home.nextcloud"]
key = "M0KMYFVOZY7AGX47"
totp = true
hash_function = "SHA1"

アクセス権もそのままでは危ないので注意

$ ls -l ~/.cloak/accounts
-rw-r--r-- 1 matoken matoken 87 9月 22 06:19 /home/matoken/.cloak/accounts
$ chmod -R go-rx ~/.cloak
$ chattr +s ~/.cloak/accounts
$ ls -la ~/.cloak
合計 12
drwx------ 2 matoken matoken 4096 9月 22 06:19 .
drwxr-xr-x 62 matoken matoken 4096 9月 23 19:58 ..
-rw------- 1 matoken matoken 87 9月 22 06:19 accounts

秘密鍵が平文でそのままファイルに格納されるので最低でもecryptfsは設定しておかないとかなな感じ?

私は現在はoathtoolを使ったscriptを使っています．秘密鍵はファイルに手で書いて暗号化しておきscript実行時に復号してoathtoolに渡してTOTP表示という感じ．若しくはKeePassCX．

KeePassXC の Steam TOTP を試す – matoken’s meme

環境

$ ~/.cargo/bin/cloak -V
cloak 0.1.0
$ dpkg-query -W cargo
cargo 0.29.0-1
$ lsb_release -d
Description: Debian GNU/Linux unstable (sid)
$ uname -m
x86_64